﻿// Decompiled with JetBrains decompiler
// Type: MCM.Abstractions.FluentBuilder.ISettingsBuilder
// Assembly: MCMv5, Version=5.10.2.0, Culture=neutral, PublicKeyToken=null
// MVID: 7AB326B9-B2B4-41C2-9177-68E944071101
// Assembly location: D:\steam\steamapps\workshop\content\261550\2859238197\bin\Win64_Shipping_Client\MCMv5.dll

using MCM.Abstractions.Base.Global;
using MCM.Abstractions.Base.PerCampaign;
using MCM.Abstractions.Base.PerSave;
using System;
using System.ComponentModel;

#nullable enable
namespace MCM.Abstractions.FluentBuilder
{
  public interface ISettingsBuilder
  {
    ISettingsBuilder SetFolderName(string value);

    ISettingsBuilder SetSubFolder(string value);

    ISettingsBuilder SetFormat(string value);

    ISettingsBuilder SetUIVersion(int value);

    ISettingsBuilder SetSubGroupDelimiter(char value);

    ISettingsBuilder SetOnPropertyChanged(PropertyChangedEventHandler value);

    ISettingsBuilder CreateGroup(string name, Action<ISettingsPropertyGroupBuilder> builder);

    ISettingsBuilder CreatePreset(string id, string name, Action<ISettingsPresetBuilder> builder);

    ISettingsBuilder WithoutDefaultPreset();

    FluentGlobalSettings BuildAsGlobal();

    FluentPerSaveSettings BuildAsPerSave();

    FluentPerCampaignSettings BuildAsPerCampaign();
  }
}
